﻿/*
 Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */

(function () {
    function a(e, f) {
        var g;
        try {
            g = e.getSelection().getRanges()[0];
        } catch (h) {
            return null;
        }
        g.shrink(CKEDITOR.SHRINK_TEXT);
        return g.getCommonAncestor().getAscendant(f, 1);
    }

    ;
    var b = function (e) {
        return e.type == CKEDITOR.NODE_ELEMENT && e.is('li');
    }, c = {a:'lower-alpha', A:'upper-alpha', i:'lower-roman', I:'upper-roman', 1:'decimal', disc:'disc', circle:'circle', square:'square'};

    function d(e, f) {
        var g = e.lang.list;
        if (f == 'bulletedListStyle')return{title:g.bulletedTitle, minWidth:300, minHeight:50, contents:[
            {id:'info', accessKey:'I', elements:[
                {type:'select', label:g.type, id:'type', align:'center', style:'width:150px', items:[
                    [g.notset, ''],
                    [g.circle, 'circle'],
                    [g.disc, 'disc'],
                    [g.square, 'square']
                ], setup:function (i) {
                    var j = i.getStyle('list-style-type') || c[i.getAttribute('type')] || i.getAttribute('type') || '';
                    this.setValue(j);
                }, commit:function (i) {
                    var j = this.getValue();
                    if (j)i.setStyle('list-style-type', j); else i.removeStyle('list-style-type');
                }}
            ]}
        ], onShow:function () {
            var i = this.getParentEditor(), j = a(i, 'ul');
            j && this.setupContent(j);
        }, onOk:function () {
            var i = this.getParentEditor(), j = a(i, 'ul');
            j && this.commitContent(j);
        }}; else if (f == 'numberedListStyle') {
            var h = [
                [g.notset, ''],
                [g.lowerRoman, 'lower-roman'],
                [g.upperRoman, 'upper-roman'],
                [g.lowerAlpha, 'lower-alpha'],
                [g.upperAlpha, 'upper-alpha'],
                [g.decimal, 'decimal']
            ];
            if (!CKEDITOR.env.ie || CKEDITOR.env.version > 7)h.concat([
                [g.armenian, 'armenian'],
                [g.decimalLeadingZero, 'decimal-leading-zero'],
                [g.georgian, 'georgian'],
                [g.lowerGreek, 'lower-greek']
            ]);
            return{title:g.numberedTitle, minWidth:300, minHeight:50, contents:[
                {id:'info', accessKey:'I', elements:[
                    {type:'hbox', widths:['25%', '75%'], children:[
                        {label:g.start, type:'text', id:'start', validate:CKEDITOR.dialog.validate.integer(g.validateStartNumber), setup:function (i) {
                            var j = i.getFirst(b).getAttribute('value') || i.getAttribute('start') || 1;
                            j && this.setValue(j);
                        }, commit:function (i) {
                            var j = i.getFirst(b), k = j.getAttribute('value') || i.getAttribute('start') || 1;
                            i.getFirst(b).removeAttribute('value');
                            var l = parseInt(this.getValue(), 10);
                            if (isNaN(l))i.removeAttribute('start'); else i.setAttribute('start', l);
                            var m = j, n = k, o = isNaN(l) ? 1 : l;
                            while ((m = m.getNext(b)) && n++) {
                                if (m.getAttribute('value') == n)m.setAttribute('value', o + n - k);
                            }
                        }},
                        {type:'select', label:g.type, id:'type', style:'width: 100%;', items:h, setup:function (i) {
                            var j = i.getStyle('list-style-type') || c[i.getAttribute('type')] || i.getAttribute('type') || '';
                            this.setValue(j);
                        }, commit:function (i) {
                            var j = this.getValue();
                            if (j)i.setStyle('list-style-type', j); else i.removeStyle('list-style-type');
                        }}
                    ]}
                ]}
            ], onShow:function () {
                var i = this.getParentEditor(), j = a(i, 'ol');
                j && this.setupContent(j);
            }, onOk:function () {
                var i = this.getParentEditor(), j = a(i, 'ol');
                j && this.commitContent(j);
            }};
        }
    }

    ;
    CKEDITOR.dialog.add('numberedListStyle', function (e) {
        return d(e, 'numberedListStyle');
    });
    CKEDITOR.dialog.add('bulletedListStyle', function (e) {
        return d(e, 'bulletedListStyle');
    });
})();
